package 老妈修改版;
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

    public class Test {
        public static void main(String[] args) throws IOException, ClassNotFoundException {
            File f = new File("D:\\demo.txt");
            ArrayList list =new ArrayList();
            if (f.exists()) {
                FileInputStream fis = new FileInputStream(f);
                ObjectInputStream ois = new ObjectInputStream(fis);
                ois.close();
            }
            while(true)
            {
                //打印菜单
                System.out.println("*****欢迎来到【周诗雨的书籍城】*****");
                System.out.println("*****1.展示书籍*****");
                System.out.println("*****2.上新书籍*****");
                System.out.println("*****3.下架书籍*****");
                System.out.println("*****4.退出应用*****");
                //借助scanner 类   sc 的 Scanner 对象，用于从标准输入（通常是键盘输入）读取数据。
                Scanner sc=new Scanner(System.in);
                //友好的提示
                System.out.println("请输入你想要的功能代码");
                //利用键盘输入序号：   sc 调用 nextInt() 方法，从控制台读取一个整数
                int choice=sc.nextInt();
                //根据choice录入功能序号进行后续判断
                if(choice==1)
                {
                    System.out.println("【书城】》》》》》》》1.展示书籍");
                /*System.out.println(list);
                当你直接打印一个对象（这里是一个Book对象组成的列表）时，Java 默认会调用这个对象的toString()方法。
                如果你没有在Book类中重写toString()方法，那么就会调用Object类的默认实现，这个实现只是返回对象的类
                名和哈希码（形如 “类名 @哈希码十六进制表示”）。
                */
                    //将文件读取到list中

                //将集合读取
                    FileInputStream fis = new FileInputStream(f);
                    ObjectInputStream ois = new ObjectInputStream(fis);

                ArrayList list2=(ArrayList) ois.readObject();
                    //关流2
                ois.close();
                for(int i=0;i<list2.size();i++)
                {

                    //图书管理系统.
                    Book b=(Book)list2.get(i);
                    System.out.println(b.getId()+"----"+b.getName()+"-----"+b.getAutor());
                }
                }
                if(choice==2)
                {
                    System.out.println("【书城】》》》》》》》2.上新书籍");
                    //从键盘输入信息
                    System.out.println("请录入书籍编号");
                    int id=sc.nextInt();
                    System.out.println("请录入书籍名字");
                    String name=sc.next();
                    System.out.println("请录入书籍作者");
                    String autor=sc.next();
                    //每上新一本书籍，就要创建一本书籍对象，初始化
                    //图书管理系统.
                    Book b =new Book(id,name,autor);
                    list.add(b);
                    FileOutputStream fos = new FileOutputStream(f);
                    ObjectOutputStream oos = new ObjectOutputStream(fos);
                    oos.writeObject(list);
                    oos.close();
                    fos.close();


                }
            if(choice==3)
            {
                System.out.println("【书城】》》》》》》》3.下架书籍");
                //录入想要删除的图书编号
                System.out.println("请输入您想要下架的书籍号");
                int delNo=sc.nextInt();
                for(int i=0;i< list.size();i++)
                {
                    Book b=(Book)list.get(i);
                    if(b.getId()==delNo)
                    {
                        list.remove(b);
                        System.out.println("书籍下架成功");
                    }
                }
                FileOutputStream fosForDel = new FileOutputStream(f);
                ObjectOutputStream oosForDel = new ObjectOutputStream(fosForDel);
                oosForDel.writeObject(list);
                oosForDel.close();
                fosForDel.close();

            }
                if(choice==4)
                {
                    System.out.println("【书城】》》》》》》》4.退出应用");
                    break;
                }

            }

        }
    }
